
let
    uid,    // uid
    maleCount,  // 男生人数
    femaleCount, // 女生人数
    userCount, // 用户人数
    conn;  // 连接句柄



// socketConnect 建立 websocket 连接
function socketConnect(address,port){
    let protocol=`ws://${address}:${port}/ws`;
    conn=new WebSocket(protocol);
    // 注册事件
    conn.onmessage=onMessageEvent;
    return conn
}


// onMessageEvent 事件推送
function onMessageEvent(evt){
    let result=JSON.parse(evt.data);
    switch (result.code) {
        case 99:    // 用户刚进入房间返回 uid
            uid=result.uid;
            // 请求获取在线用户数量
            let obj={
                "scene":1,
                "uid":uid
            };
            sendScene(conn,obj);
            break;
        case 100:   // 返回大厅人数
            maleCount=result.data.male_count;
            femaleCount=result.data.female_count;
            userCount=result.data.users_count;
            if (femaleCount!=0){
                $("#femaleCount").fadeIn(3000);
            }
            if (maleCount!=0){
                $("#maleCount").fadeIn(3000);
            }
            $("#maleCount span").text(maleCount);
            $("#femaleCount span").text(femaleCount);
            $("#userCount span").text(userCount);
            $("#userCount").fadeIn(3000);
            break;
        case 101:   // 匹配成功
            layer.msg("匹配成功");
            // 载入动画
            var n = 0, timer = setInterval(function(){
                n = n + Math.random()*10|0;
                if(n>100){
                    n = 100;
                    clearInterval(timer);
                    element.progress('demo', n+'%');
                    // 当多人聊天室时需要判断
                    switch (result.data.mode) {
                        case 2: // 多人聊天室
                            // TODO 判断是否是自己匹配成功,拿uid做比对
                            break;
                        default: // 双人人聊天室直接载入聊天室
                            $("body").load("/static/room.html",function () {
                                $("#user1").text(result.data.user[0].nick_name);
                                $("#user2").text(result.data.user[1].nick_name);
                            });
                    }
                }
                element.progress('demo', n+'%');
            }, 80+Math.random()*10);
            break;
        case 102:   // 用户退出
            break;
        case 103:   // 用户取消匹配等待
            break;
        case 104:   // 聊天消息推送
            break;
    }
}

// sendScene 发送场景
function sendScene(conn,obj){
    let result=JSON.stringify(obj);
    conn.send(result)
}


